
#pragma once

class AbstractGlutWindow
{
friend class GlutApplication;
enum {WINDOW_WIDTH = 300, WINDOW_HEIGHT = 300};
public:
    AbstractGlutWindow();
    AbstractGlutWindow(const char* name, int w, int h);
    AbstractGlutWindow(const char* name);

    void setFullScreen(bool);
    bool isFullScreen() const;
    int width() const;
    int height() const;

    virtual void onDisplay() {};
    virtual void onReshape(int, int) {};
    virtual void onVisibility(int) {};
    virtual void onKeyboard(unsigned char, int, int) {};
private:
    void initGL();
    bool bFullScreen;
    int nWidth, nHeight, nWidthBeforeFS, nHeightBeforeFS;
};




